{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "d9d5b99e",
   "metadata": {},
   "source": [
    "支持向量机对居中后的数据效果较好，处理前需要标准化"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c5f63911",
   "metadata": {},
   "source": [
    "# 线性SVM分类"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "764a024a",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-01-14T03:35:06.351298Z",
     "start_time": "2022-01-14T03:34:53.865823Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Pipeline(steps=[('scaler', StandardScaler()),\n",
       "                ('linear_svc', LinearSVC(C=1, loss='hinge'))])"
      ]
     },
     "execution_count": 1,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import numpy as np\n",
    "from sklearn import datasets\n",
    "from sklearn.pipeline import Pipeline\n",
    "from sklearn.preprocessing import StandardScaler\n",
    "from sklearn.svm import LinearSVC\n",
    "%matplotlib inline\n",
    "\n",
    "iris = datasets.load_iris()\n",
    "x = iris['data'][:, (2,3)]  # 花瓣长和宽两个属性\n",
    "y = (iris['target'] == 2).astype(np.float64)  # 选正例\n",
    "\n",
    "svm_clf = Pipeline([\n",
    "    ('scaler', StandardScaler()),\n",
    "    ('linear_svc', LinearSVC(C=1, loss='hinge')),\n",
    "])\n",
    "\n",
    "svm_clf.fit(x, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "9fde5e63",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-01-14T03:35:06.446047Z",
     "start_time": "2022-01-14T03:35:06.352298Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([1.])"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "svm_clf.predict([[5.5, 1.7]])  # 预测"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "696950f1",
   "metadata": {},
   "source": [
    "# 非线性SVM分类"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "ab7fc22d",
   "metadata": {},
   "source": [
    "通过添加多项式特征实现非线性分类"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "921b5edf",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-01-14T03:35:06.476965Z",
     "start_time": "2022-01-14T03:35:06.448040Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Pipeline(steps=[('poly_features', PolynomialFeatures(degree=3)),\n",
       "                ('scaler', StandardScaler()),\n",
       "                ('svm_clf', LinearSVC(C=10, loss='hinge', max_iter=10000))])"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.datasets import make_moons\n",
    "from sklearn.pipeline import Pipeline\n",
    "from sklearn.preprocessing import PolynomialFeatures\n",
    "\n",
    "x, y = make_moons(n_samples=100, noise=0.15)\n",
    "polynomial_svm_clf = Pipeline([\n",
    "    (\"poly_features\", PolynomialFeatures(degree=3)),\n",
    "    (\"scaler\", StandardScaler()),\n",
    "    (\"svm_clf\", LinearSVC(C=10, loss='hinge', max_iter=10000)),\n",
    "])\n",
    "\n",
    "polynomial_svm_clf.fit(x, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "b8224147",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-01-14T03:35:06.492951Z",
     "start_time": "2022-01-14T03:35:06.479957Z"
    }
   },
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "def plot_dataset(X, y, axes):\n",
    "    plt.plot(X[:, 0][y==0], X[:, 1][y==0], \"bs\")\n",
    "    plt.plot(X[:, 0][y==1], X[:, 1][y==1], \"g^\")\n",
    "    plt.axis(axes)\n",
    "    plt.grid(True, which='both')\n",
    "    plt.xlabel(r\"$x_1$\", fontsize=20)\n",
    "    plt.ylabel(r\"$x_2$\", fontsize=20, rotation=0)\n",
    "\n",
    "def plot_predictions(clf, axes):\n",
    "    x0s = np.linspace(axes[0], axes[1], 100)\n",
    "    x1s = np.linspace(axes[2], axes[3], 100)\n",
    "    x0, x1 = np.meshgrid(x0s, x1s)  # 数据网格化\n",
    "    X = np.c_[x0.ravel(), x1.ravel()]\n",
    "    y_pred = clf.predict(X).reshape(x0.shape)\n",
    "    y_decision = clf.decision_function(X).reshape(x0.shape)\n",
    "    plt.contourf(x0, x1, y_pred, cmap=plt.cm.brg, alpha=0.2)  # 根据预测结果生成等高线\n",
    "    plt.contourf(x0, x1, y_decision, cmap=plt.cm.brg, alpha=0.1)  # 根据预测结果的概率生成等高线"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "4725696a",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-01-14T03:35:07.619396Z",
     "start_time": "2022-01-14T03:35:06.493919Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_predictions(polynomial_svm_clf, [-1.5, 2.5, -1, 1.5])\n",
    "plot_dataset(x, y, [-1.5, 2.5, -1, 1.5])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "7df5652e",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-01-13T08:29:49.767366Z",
     "start_time": "2022-01-13T08:29:49.756397Z"
    }
   },
   "source": [
    "## 多项式内核"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "b701f58e",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-01-14T03:35:07.634351Z",
     "start_time": "2022-01-14T03:35:07.620389Z"
    }
   },
   "outputs": [],
   "source": [
    "from sklearn.svm import SVC"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "f4f12b27",
   "metadata": {},
   "source": [
    "### 应用模型"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "13d20d1f",
   "metadata": {},
   "source": [
    "#### 网格搜索参数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "cf33a636",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-01-14T03:35:07.775143Z",
     "start_time": "2022-01-14T03:35:07.635349Z"
    }
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "{'C': 3, 'degree': 4}\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "SVC(C=3, coef0=1, degree=4, kernel='poly')"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.model_selection import GridSearchCV\n",
    "param_grid = [\n",
    "    {'degree': [2, 3, 4, 5], 'C': [ 3, 5, 7]},\n",
    "]\n",
    "\n",
    "scl = StandardScaler()\n",
    "x_s = scl.fit_transform(x)\n",
    "svm_clf = SVC(kernel='poly', degree=3, coef0=1, C=5)  # 核技巧使用多项式\n",
    "\n",
    "grid_search = GridSearchCV(svm_clf, param_grid, cv = 5,\n",
    "                          scoring='neg_mean_squared_error',\n",
    "                          return_train_score=True)\n",
    "grid_search.fit(x_s, y)  # 开始搜索最佳参数\n",
    "\n",
    "print(grid_search.best_params_)  # 输出最佳参数，在属性 .best_params_ 中\n",
    "grid_search.best_estimator_  # 最佳模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "id": "91c29890",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-01-14T03:35:07.790974Z",
     "start_time": "2022-01-14T03:35:07.776973Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Pipeline(steps=[('scaler', StandardScaler()),\n",
       "                ('svm_clf', SVC(C=3, coef0=1, degree=4, kernel='poly'))])"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "poly_kernel_svm_clf = Pipeline([\n",
    "    ('scaler', StandardScaler()),\n",
    "    ('svm_clf', SVC(C=3, coef0=1, degree=4, kernel='poly')),  # 核为'poly'，三阶多项式，coef0 核函数常数项\n",
    "])\n",
    "poly_kernel_svm_clf.fit(x, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "15765844",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-01-14T03:35:07.933557Z",
     "start_time": "2022-01-14T03:35:07.791930Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_predictions(poly_kernel_svm_clf, [-1.5, 2.5, -1, 1.5])\n",
    "plot_dataset(x, y, [-1.5, 2.5, -1, 1.5])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fa0b840a",
   "metadata": {},
   "source": [
    "#### 过拟合情况（degree=10）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "fd1625a9",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-01-14T03:35:08.076212Z",
     "start_time": "2022-01-14T03:35:07.935547Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "poly_kernel_svm_clf = Pipeline([\n",
    "    ('scaler', StandardScaler()),\n",
    "    ('svm_clf', SVC(C=3, coef0=1, degree=10, kernel='poly')),  # 核为'poly'，三阶多项式，coef0 核函数常数项\n",
    "])\n",
    "poly_kernel_svm_clf.fit(x, y)\n",
    "plot_predictions(poly_kernel_svm_clf, [-1.5, 2.5, -1, 1.5])\n",
    "plot_dataset(x, y, [-1.5, 2.5, -1, 1.5])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "48641ee2",
   "metadata": {},
   "source": [
    "## 相似特征"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "12e68b86",
   "metadata": {},
   "source": [
    "高斯RBF\n",
    "\n",
    "$\\phi_r(x,l)=e^{(-\\gamma||x-l||^2)}$"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0b1958f4",
   "metadata": {},
   "source": [
    "## 高斯RBF内核"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "95efccc4",
   "metadata": {},
   "source": [
    "实际上是类似钟形分割"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "42d4193b",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-01-14T03:35:08.091544Z",
     "start_time": "2022-01-14T03:35:08.077169Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Pipeline(steps=[('scaler', StandardScaler()),\n",
       "                ('svmclf', SVC(C=1000, gamma=0.1))])"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "rbf_kernel_svm_clf = Pipeline([\n",
    "    ('scaler', StandardScaler()),\n",
    "    ('svmclf', SVC(kernel='rbf', gamma=0.1, C=1000))  # C和gamma都与拟合程度正相关，过拟合时需要降低取值\n",
    "])\n",
    "\n",
    "rbf_kernel_svm_clf.fit(x, y)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "04f3b512",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-01-14T03:35:08.297884Z",
     "start_time": "2022-01-14T03:35:08.093125Z"
    }
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_predictions(rbf_kernel_svm_clf, [-1.5, 2.5, -1, 1.5])\n",
    "plot_dataset(x, y, [-1.5, 2.5, -1, 1.5])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "39b1f426",
   "metadata": {},
   "source": [
    "### 选择核函数"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "feff2c90",
   "metadata": {},
   "source": [
    "先尝试线性核函数（ LinearSVC比SVC(kernel='linear)快得多 ），特别是训练集很大时，如果训练集不太大，可以尝试高斯RBF内核，也可以用网格搜索尝试其他核函数。"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "05662a37",
   "metadata": {},
   "source": [
    "## 计算复杂度"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "5dae2c6a",
   "metadata": {},
   "source": [
    "| 类            | 时间复杂度             | 核外支持  | 需要缩放   | 核技巧  |\n",
    "| ------------- | -------------------- | -------- | -------- | ------ |\n",
    "| LinearSVC     | O(m×n)             | 否       | 是       | 否     |\n",
    "| SGDClassifier | O(m×n)             | 是       | 是       | 否     |\n",
    "| SVC           | O(m^2×n)~O(m^3×n) | 否       | 是       | 是     |"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "df85aae5",
   "metadata": {},
   "source": [
    "# SVM回归（SVR）"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "b40af41a",
   "metadata": {},
   "source": [
    "## LinearSVR（更快）"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "8b2b339a",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-01-14T03:44:57.255559Z",
     "start_time": "2022-01-14T03:44:57.244575Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "LinearSVR(epsilon=1.5)"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.svm import LinearSVR\n",
    "svm_reg = LinearSVR(epsilon=1.5)  # 控制支持向量间的间隔宽度\n",
    "svm_reg.fit(x, y)"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "fd01ba30",
   "metadata": {},
   "source": [
    "## SVR+核技巧"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "aecaa4ec",
   "metadata": {},
   "source": [
    "结果相同，速度较慢"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "36d360be",
   "metadata": {
    "ExecuteTime": {
     "end_time": "2022-01-14T03:50:05.502608Z",
     "start_time": "2022-01-14T03:50:05.484656Z"
    }
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "SVR(C=100, degree=2, kernel='poly')"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "from sklearn.svm import SVR\n",
    "svm_poly_reg = SVR(kernel='poly', degree=2, C=100, epsilon=0.1)\n",
    "svm_poly_reg.fit(x, y)"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.7"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": true
  },
  "varInspector": {
   "cols": {
    "lenName": 16,
    "lenType": 16,
    "lenVar": 40
   },
   "kernels_config": {
    "python": {
     "delete_cmd_postfix": "",
     "delete_cmd_prefix": "del ",
     "library": "var_list.py",
     "varRefreshCmd": "print(var_dic_list())"
    },
    "r": {
     "delete_cmd_postfix": ") ",
     "delete_cmd_prefix": "rm(",
     "library": "var_list.r",
     "varRefreshCmd": "cat(var_dic_list()) "
    }
   },
   "position": {
    "height": "579.85px",
    "left": "1165.2px",
    "right": "20px",
    "top": "120px",
    "width": "350px"
   },
   "types_to_exclude": [
    "module",
    "function",
    "builtin_function_or_method",
    "instance",
    "_Feature"
   ],
   "window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
